package com.luoshizhen.lease.web.app.service.impl;

import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.luoshizhen.lease.web.app.service.SmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class SmsServiceImpl implements SmsService {

    @Autowired
    private Client client;

    /**
     * 发送验证码到指定电话号码
     *
     * @param phone 接收验证码的电话号码
     * @param code  需要发送的验证码
     *
     * 此方法构造一个发送短信请求，将验证码发送到指定的电话号码
     * 使用阿里云的短信服务进行验证码的发送
     */
    @Override
    public void sendCode(String phone, String code) {
        // 创建发送短信请求对象
        SendSmsRequest request = new SendSmsRequest();
        // 设置接收短信的电话号码
        request.setPhoneNumbers(phone);
        // 设置短信签名名称
        request.setSignName("阿里云短信测试");
        // 设置短信模板代码
        request.setTemplateCode("SMS_154950909");
        // 设置短信模板参数，此处为验证码
        request.setTemplateParam("{\"code\":\"" + code + "\"}");

        // 尝试发送短信，如果发生异常则抛出运行时异常
        try {
            client.sendSms(request);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
